package com.zzyq.pc.web.report.mapper;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.zzyq.pc.web.report.model.Report;

public interface ReportMapper {
    int deleteByPrimaryKey(Integer reportId);

    int insert(Report record);

	Report selectByPrimaryKey(@Param("reportId") Integer reportId);

	/**
	 * 查询报告列表
	 * 
	 * @param map
	 * @return
	 */
	List<Report> selectByCompanyId(Map<String, Object> map);

    List<Report> selectAll();

    int updateByPrimaryKey(Report record);

	/**
	 * 查询当前报告上一期报告
	 * 
	 * @param reportId
	 *            当前报告ID
	 * @param companyId
	 *            报告所属团体ID
	 * @return 上一期报告对象
	 */
	Report selectReportByReportIdAndCompanyId(@Param("reportId") Integer reportId,
			@Param("companyId") Integer companyId);

	/**
	 * 获取团队在数据库中最新的报告
	 * 
	 * @param companyId
	 * @return
	 */
	Report selectMaxReport(Integer companyId);

	/**
	 * 查询团体下报告时间是否存在生成过的报告，可用作重复生成过滤
	 * 
	 * @param companyId
	 *            团体ID
	 * @param reportTime
	 *            报告日期
	 * @return
	 */
	int selectRepeatReport(@Param("companyId") Integer companyId, @Param("reportTime") Date reportTime);
}